import axios from 'axios';

// src/api/auth.ts
import axiosInstance from './axiosInstance'; // 引入已经配置好的 axios 实例

// 登录请求数据的接口定义
export interface LoginData {
  username: string;
  password: string;
}

// 登录响应的接口定义
export interface LoginResult {
  token?: string;  // 后端返回的 token
  userInfo?: any;  // 假设返回用户信息
}

// // 创建一个 axios 实例，设置后端服务的基础 URL
// const axiosInstance = axios.create({
//   baseURL: "http://localhost:8000/api",  // 指定后端服务的基础 URL
//   headers: {
//     "Content-Type": "text/plain;charset=utf-8",  // 设置默认 Content-Type
//   },
// });

// 创建一个类来处理认证相关的 API 请求
class AuthAPI {
  /** 登录接口 */
  static async login(data: LoginData) {
    try {
      const response = await axiosInstance.post<LoginResult>('/login/', data, {
        headers: {
          'Content-Type': 'application/json;charset=utf-8',
        },
      });

      // 假设后端返回的是 token 和 userInfo
      if (response.data.token) {
        // 将 token 存储在 localStorage 中
        localStorage.setItem('token', response.data.token);

        // 如果需要保存用户信息，可以在这里处理
        if (response.data.userInfo) {
          localStorage.setItem('userInfo', JSON.stringify(response.data.userInfo));
        }

        // 返回登录结果
        return response.data;
      }

      throw new Error('登录失败');
    } catch (error) {
      console.error('登录失败:', error);
      throw error;
    }
  }
}

export default AuthAPI;
